package org.chainsale.prefuse.controls;

import java.awt.event.MouseEvent;
import java.awt.geom.Point2D;

import prefuse.Display;
import prefuse.controls.ControlAdapter;
import prefuse.util.ui.UILib;

public class FlyInOutZoomControl extends ControlAdapter {
	
//	 private int m_button_zoom_out = RIGHT_MOUSE_BUTTON;
	 private int m_button_zoom_in = LEFT_MOUSE_BUTTON;
	 private long m_duration = 2000;  
	/**
     * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)
     */
    public void mouseClicked(MouseEvent e) {
    	Display display = (Display)e.getComponent();
    	if ( !display.isTranformInProgress() && 
        	  UILib.isButtonPressed(e, m_button_zoom_in) &&
        	  e.getClickCount() == 2)
        {
    		
    		Point2D center = new Point2D.Double((double)e.getX(), (double)e.getY());
    		double scale = 3.0;
    		display.animatePanAndZoomTo(center, scale, m_duration);
    	    /*   
            Visualization vis = display.getVisualization();
            Rectangle2D bounds = vis.getBounds(m_group);
            GraphicsLib.expand(bounds, m_margin + (int)(1/display.getScale()));
            DisplayLib.fitViewToBounds(display, bounds, m_duration);
            DisplayLib.fitViewToBounds(display, bounds, center, duration)
        	*/
        }
    }

}
